<html xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Concept: Extreme Programming</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="element_type" content="concept">
<meta content="description" name="filetype">
<meta name="role" content="">
<link type="text/css" href="./../../../css/default.css" rel="StyleSheet">
<script src="./../../../scripts/contentpage.js" type="text/javascript" language="JavaScript"></script><script type="text/javascript" language="JavaScript">
					backPath = './../../../';
				</script>
</head>
<body onload="createSectionLinks('div', 'sectionHeading', './../../../images/');">
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td valign="top"><a name="Top"></a>
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="pageTitle">Concept: Extreme Programming</td>
</tr>
</table>
<table cellspacing="0" cellpadding="0" border="0" width="100%">
<tr>
<td class="pageTitleSeparator"><img height="1" alt="" src="./../../../images/shim.gif"></td>
</tr>
</table>
<div class="overview">
<table cellpadding="0" cellspacing="0" border="0" width="97%">
<tr>
<td>
<table cellpadding="0" cellspacing="0" border="0" class="overviewTable">
<tr>
<td valign="top"></td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Main Description</div>
<div class="sectionContent">
<table cellpadding="0" cellspacing="0" border="0" class="sectionTable">
<tr valign="top">
<td class="sectionTableCell"><a id="XE_xp__conceptual_process_roadmap" name="XE_xp__conceptual_process_roadmap"></a><a id="XE_roadmap__for_xp_practices" name="XE_roadmap__for_xp_practices"></a> 
<h3>
    Topics
</h3>
<div align="left">
    <table width="70%" border="1">
        <tbody valign="top">
            <tr>
                <td width="315" height="178">
                    <ul>
                        <li>
                            <a href="#Introduction">Introduction</a>
                        </li>
                        <li style="LIST-STYLE-TYPE: none">
                            <ul>
                                <li>
                                    <a href="#About">About XP</a>
                                </li>
                            </ul>
                        </li>
                    </ul>
                    <p>
                        <br />
                        <br />
                    </p>
                    <ul>
                        <li>
                            <a href="#Characteristics">Characteristics of an XP Project</a>
                        </li>
                        <li>
                            <a href="#GettingStarted">How to Get Started</a>
                        </li>
                        <li>
                            <a href="#Phases">Phases and Iterations</a>
                        </li>
                    </ul>
                </td>
                <td width="315" height="178">
                    <b>Additional Guidance:</b> 
                    <ul>
                        <li>
                            Guidelines 
                            <ul>
                                <li>
                                    <a class="elementLink" href="./../../../xp/guidances/guidelines/refactoring,8.137126904637637E-306.html" guid="8.137126904637637E-306">Refactoring</a>
                                </li>
                                <li>
                                    <a class="elementLinkWithUserText" href="./../../../xp/guidances/guidelines/test_driven_development_tdd,3.9254165491375454E-306.html" guid="3.9254165491375454E-306">Test First Development</a>
                                </li>
                                <li>
                                    <a class="elementLinkWithUserText" href="./../../../xp/guidances/guidelines/pair_programming,3.85153041801319E-307.html" guid="3.85153041801319E-307">Pair Programming</a>
                                </li>
                                <li>
                                    <a class="elementLinkWithUserText" href="./../../../xp/guidances/guidelines/planning_game,6.7335956461328426E-307.html" guid="6.7335956461328426E-307">Planning Game</a>
                                </li>
                                <li style="LIST-STYLE-TYPE: none">
                                    <br />
                                    <br />
                                </li>
                            </ul>
                        </li>
                        <li>
                            <a class="elementLinkWithUserText" href="./../../../xp/guidances/supportingmaterials/bup_xp_plug-in_resource_center,2.315717433735515E-305.html" guid="2.315717433735515E-305">Additional XP Resources</a>
                        </li>
                    </ul>
                    <b>Additional Concepts:</b> 
                    <ul>
                        <li>
                            <a class="elementLink" href="./../../../xp/guidances/concepts/agile_software_development,1.041091673844025E-305.html" guid="1.041091673844025E-305">Agile Software Development</a>
                        </li>
                    </ul>
                </td>
            </tr>
        </tbody>
    </table>
</div>
<br />
<br />
<h1>
    <a id="Introduction" name="Introduction">Introduction</a>
</h1>
<p>
    This roadmap provides information for getting started and applying the practices of eXtreme Programming (XP) to a
    software development project. The roadmap can be used as a guide to the content delivered in the BUP XP Plug-In.
</p>
<h3>
    <a id="About" name="About">About XP</a>&nbsp;
</h3>
<p>
    Extreme Programming is an instance of an <a class="elementLink" href="./../../../xp/guidances/concepts/agile_software_development,1.041091673844025E-305.html" guid="1.041091673844025E-305">Agile Software Development</a> method. XP is a method that is optimized for small to
    medium-sized project teams that fit a certain profile. It promotes rapid feedback and response to continual change. It
    is based upon the four <a class="elementLinkWithUserText" href="./../../../xp/guidances/concepts/xp_values,1.076140803519123E-306.html" guid="1.076140803519123E-306">values</a> of simplicity, communication, feedback, and courage and is consistent with the
    values of agile software development.
</p>
<br />
<p>
    Extreme Programming is an instance of an agile method for developing software. It is based upon the core principle of
    agility and consists of twelve practices that, when applied to an appropriate software development project, can produce
    high-quality software. If you are unfamiliar with the concepts surrounding XP, you should start by reading <a class="elementLink" href="./../../../xp/guidances/concepts/agile_software_development,1.041091673844025E-305.html" guid="1.041091673844025E-305">Agile Software Development</a>.
</p>
<h3>
    <a id="Characteristics" name="Characteristics">Characteristics of an XP Project</a>
</h3>
<p>
    Extreme Programming or XP is a development process that can be used by small to medium-sized teams to develop high
    quality software within a predictable schedule and budget and with a minimum of overhead. Since XP relies heavily on
    direct and frequent communication between the team members, the team should be co-located. An ideal project for using
    XP would be one that has most of the following characteristics:
</p>
<ul>
    <li>
        A small to medium-sized team (fewer than 20 people on the complete team)
    </li>
    <li>
        Co-located, preferably in a single area with a large common space
    </li>
    <li>
        A committed, full-time, on-site customer or customer representative
    </li>
    <li style="LIST-STYLE-TYPE: none">
        <br />
    </li>
</ul>
<h3>
    <a id="Phases" name="Phases">Phases and Iterations</a>
</h3>
<p>
    An XP project is one that is based on rapid feedback through short iterations and frequent releases. BUP and XP share a
    fundamental belief that iterative development is the best way to deliver valuable software to your customers. The
    concept of phases, as usually described in a BUP configuration, is somewhat different. Decisions described in the BUP
    phases that define milestones occur, but they are not called specifically as defining phases. For a discussion of how
    the phases are related to an XP project, see the discussion of <a class="elementLinkWithUserText" href="./../../../xp/deliveryprocesses/bup_phases_and_xp,{63BD15C5-40EF-469A-A22A-3291734B60F4}.html" guid="{63BD15C5-40EF-469A-A22A-3291734B60F4}">Phases</a>.
</p>
<h3>
    <a id="GettingStarted" name="GettingStarted">How to Get Started</a>
</h3>
<p>
    This section provides a recommended way to approach XP for your project. You don't have to follow the steps as
    specified, but if you have little experience with XP, we recommend following them as closely as possible the first
    time.
</p>
<table cellspacing="2" cellpadding="1" width="91%" border="1">
    <tbody>
        <tr>
            <th width="10%">
                Step
            </th>
            <th align="left" width="47%">
                Do this ...
            </th>
            <th align="left" width="43%">
                in order to...
            </th>
        </tr>
        <tr>
            <td align="middle" width="10%">
                1
            </td>
            <td width="47%">
                Familiarize yourself with the&nbsp;<a class="elementLink" href="./../../../xp/guidances/concepts/motivation,1.6390805262958034E-306.html" guid="1.6390805262958034E-306">motivation</a> for using XP, the <a class="elementLinkWithUserText" href="./../../../xp/guidances/concepts/what_is_xp,9.251272550276345E-306.html" guid="9.251272550276345E-306">short description</a> of XP, and the <a class="elementLink" href="./../../../xp/guidances/concepts/xp_practices,2.2937799026801584E-305.html" guid="2.2937799026801584E-305">XP Practices</a> 
            </td>
            <td width="43%">
                understand the fundamental principles of XP and how the practices support each other.
            </td>
        </tr>
        <tr>
            <td align="middle" width="10%">
                2
            </td>
            <td width="47%">
                Read the key concepts of <a class="elementLink" href="./../../../xp/guidances/concepts/agile_software_development,1.041091673844025E-305.html" guid="1.041091673844025E-305">Agile Software Development</a> 
            </td>
            <td width="43%">
                understand the collaborative and social aspects of XP.
            </td>
        </tr>
        <tr>
            <td align="middle" width="10%">
                3
            </td>
            <td width="47%">
                Determine if XP is appropriate for your project by reviewing <a href="#Characteristics">The Characteristics
                of an XP Project</a> 
            </td>
            <td width="43%">
                decide if XP may be appropriate for your project.
            </td>
        </tr>
        <tr>
            <td align="middle" width="10%">
                4
            </td>
            <td width="47%">
                Read about the <a class="elementLinkWithUserText" href="./../../../xp/guidances/guidelines/xp_environment,3.754748120034442E-307.html" guid="3.754748120034442E-307">XP Environment</a>.
            </td>
            <td width="43%">
                prepare the physical and tool environment for your team.
            </td>
        </tr>
        <tr>
            <td align="middle" width="10%">
                5
            </td>
            <td width="47%">
                Read the <a class="elementLink" href="./../../../xp/guidances/supportingmaterials/getting_started_with_xp,1.2284921351651456E-304.html" guid="1.2284921351651456E-304">Getting Started with XP</a> guidelines.
            </td>
            <td width="43%">
                get suggestions on how to start an XP project.
            </td>
        </tr>
    </tbody>
</table>
<br />
<br />
<br />
<br /></td>
</tr>
</table>
</div>
<table cellpadding="0" cellspacing="0" border="0" class="copyright">
<tr>
<td class="copyright"></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
